package cn.tedu.blog.server.repo;


import cn.tedu.blog.server.pojo.vo.ArticleStandardVO;

import java.util.List;

public interface IArticleRepository {
    /**
     * 分页文章查询密钥
     */
    String KEY_PREFIX_ARTICLE_ITEM = "article:item:";
    /**
     * 文章最新列表密钥
     */
    String KEY_NEWEST_ARTICLE_LIST = "article:newestList:";
    /**
     * 热门文章密钥
     */
    String KEY_POPULAR_ARTICLE_LIST = "article:popularList:";
    /**
     * 推荐文章密钥
     */
    String KEY_IS_RECOMMEND_ARTICLE_LIST = "article:isRecommendList:";

    /**
     * 文章存入redis
     * @param articleStandardVO
     */
    void put(ArticleStandardVO articleStandardVO);

    /**
     * 根据id从redis中读取
     * @param id
     * @return
     */
    ArticleStandardVO get(Long id);

    /**
     *根据文章从redis中删除
     * @param id
     */
    void deleteItem(Long id);

    /**
     * 文章列表存入redis
     * @param list
     * @param key
     */
    void putList(List<ArticleStandardVO> list,String key);

    /**
     * 从redis中获取文章列表
     * @param key
     * @return
     */
    List<ArticleStandardVO> getList(String key);

    /**
     * 删除文章列表
     */
    void deleteList();

    /**
     * 判断密钥是否过期
     * @param key
     * @return
     */
    boolean  isExpired(String key);

}
